public class code2 {
//    力扣 150 求根节点到叶子节点的数字之和
public int sumNumbers(TreeNode root) {
    // 这道题目要求的是，这整一条路径上的元素值组成一个数字，最终将各个路径上组成的值进行相加操作
    // 同样的，能想到的就是深度优先搜索(先序遍历)

    // 设置一个方法，实现递归操作
    // 因为要根据左右子树进行加和计算，需要额外传入一个 num 值
    int re = getNum(root, 0);

    return re;
}

    public int getNum(TreeNode node, int num) {
        // 首先，设置递归返回的条件
        if(node == null) {
            return 0;
        }

        // 设置对节点数字的 进制位处理
        // 让每一次递归过来的 num 值自动进行一次进位操作
        num = num * 10 + node.val;
        // 判断一下左右节点都为 null 的情况(也就是到树最底层时的情况)
        if(node.left == null && node.right == null) {
            return num;
        }

        // 左右节点进行递归计算
        return getNum(node.left, num) + getNum(node.right, num);
    }
}
